A Call-by-Need Strategy for Higher-Order Functional-Logic Programming
نویسنده
چکیده
We present an approach to truely higher order functional logic programming based on higher order narrowing Roughly speaking we model a higher order functional core language by higher order rewriting and extend it by logic variables For the integration of logic programs conditional rules are supported For solving goals in this framework we present a complete calcu lus for higher order conditional narrowing We develop several re nements that utilize the determinism of functional programs These re nements can be combined to a narrowing strategy which generalizes call by need as in functional programming where the dedicated higher order methods are only used for full higher order goals Furthermore we propose an implementa tional model for this narrowing strategy which delays computations until needed
منابع مشابه
Higher Order Functional Logic Programming A Systematic Development
We develop an e ective model for higher order functional logic programming by re ning higher order narrowing calculi The re nements reduce the high degree of non determinism in narrowing calculi utilizing properties of functional logic programs These include convergent and left linear rewrite rules All re nements can be combined to a narrowing strategy which generalizes call by need as in funct...
متن کاملHigher-Order Narrowing with De nitional Trees
Functional logic languages with a sound and complete opera tional semantics are mainly based on narrowing Due to the huge search space of simple narrowing steadily improved narrowing strategies have been developed in the past Needed narrowing is currently the best nar rowing strategy for rst order functional logic programs due to its opti mality properties w r t the length of derivations and th...
متن کاملOn functional logic programming and its application to testing
ion, 5, 6, 8, 13, 15, 108, 152advancing strategy, 43anonymous function, 7approximation, 10assembly language, 5assignment, 5AVL tree, 69 backtracking, 21, 29, 108, 110, 115balanced strategy, 43binary leaf tree, 14black-box tests, 35, 68Boolean values, 1breadth-first search, 29, 42, 116 call-time choice, 25, 124, 128, 132, 135class constraint, 12<lb...
متن کاملHigher-Order Narrowing with Definitional Trees
Functional logic languages with a sound and complete operational semantics are mainly based on an inference rule called narrowing. Narrowing extends functional evaluation by goal solving capabilities as in logic programming. Due to the huge search space of simple narrowing, steadily improved narrowing strategies have been developed in the past. Needed narrowing is currently the best narrowing s...
متن کاملExtended Static Checking of Call-by-Value Functional Programs
We present a Hoare logic for a call-by-value programming language equipped with recursive, higher-order functions, algebraic data types, and a polymorphic type system in the style of Hindley and Milner. It is the theoretical basis for a tool that extracts proof obligations out of programs annotated with logical assertions. These proof obligations, expressed in a typed, higher-order logic, are d...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1995